Hi Kevin,
I can't think of why there would be a difference. Calling Interpreter.Halt() just sets a flag. The Interpreter Thread that is executing GCode internally makes calls to CheckMotionHalt() which checks for the flag and if set, issues an immediate hardware feedhold. The Interpreter should be making calls to CheckMotionHalt() from all its various states (Downloading segments, waiting for buffer space, etc).
Could you be more specific? Is there always a delay? What type of Gode? At the middle of executing or waiting to complete? Coordinated Motion or Rapids? How long is the delay?
Could there be a delay before calling the Halt() function?
Regards
TK